package ru.bazunaka.bazbloglite.Entity;

import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import java.time.Instant;

/**
 * Сущность, представляющая твит пользователя.
 *
 * @author Андрей Сторожок.
 * @version 1.0
 */
@Entity
@Getter
@Setter
@Table(name = "bazblog_posts")
@EntityListeners(AuditingEntityListener.class)
public class Tweet {

    /**
     * Уникальный идентификатор твита.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * Содержание твита.
     */
    private String message;

    /**
     * Дата и время создания твита.
     */
    @CreatedDate
    @Column(nullable = false, updatable = false)
    private Instant createdTime;

    /**
     * Дата и время последнего обновления твита.
     */
    @LastModifiedDate
    @Column(nullable = false)
    private Instant modifiedTime;

    /**
     * Профиль пользователя, который создал этот твит.
     */
    @ManyToOne(optional = false)
    private UserProfile userProfile;
}
